python进制转换(二进制、十进制和十六进制)及注意事项

您所在的位置:网站首页 python 实现进制转换 python进制转换(二进制、十进制和十六进制)及注意事项

python进制转换(二进制、十进制和十六进制)及注意事项

#python进制转换(二进制、十进制和十六进制)及注意事项| 来源: 网络整理| 查看: 265

进制间的转换

编程用十进制,十进制转换为二进制、八进制、十六进制

In[135]:bin(23)

Out[135]:'0b10111'

In[136]:oct(23)

Out[136]:'0o27'

In[137]:hex(23)

Out[137]:'0x17'

也可以直接反向获取十进制

In[146]:0b10111

Out[146]:23

In[147]:0o27

Out[147]:23

In[148]:0x17

Out[148]:23

也可以用int函数来转换

In[149]:int('0b10111',2)

Out[149]:23

In[150]:int('0o27',8)

Out[150]:23

In[151]:int('0x17',16)

Out[151]:23

位运算

&按位与|按位或^按位异或~按位取反>按位右移用途:直接操作二进制,省内存,效率高

1)

各二进位全部左移n位,高位丢弃,低位补0

x

【注意事项】

a.左移1位相当于乘以2用途:快速计算一个数乘以2的n次方(8

b.左移可能会改变一个数的正负性

2)>>右移

各二进位全部右移n位,保持符号位不变

x>>nx的所有二进制位向右移动n位,移出的位删掉,移进的位补符号位右移不会改变一个数的符号

【注意事项】

右移1位相当于除以2x右移n位就相当于除以2的n次方用途:快速计算一个数除以2的n次方(8>>3等同于8/2^3)

3)&按位与

全1才1否则0:只有对应的两个二进位均为1时,结果位才为1,否则为0

用6和3这个例子。不要用9和13的例子

4)|按位或

有1就1只要对应的二个二进位有一个为1时,结果位就为1,否则为0

5)^按位异或

不同为1当对应的二进位相异(不相同)时,结果为1,否则为0

6)~取反

~9=-10

【为什么9取反变成了-10的说明】:

9的原码==>00001001因为正数的原码=反码=补码,所以在真正存储的时候就是00001001

接下来进行对9的补码进行取反操作

进行取反==>11110110这就是对9进行了取反之后的补码

既然已经知道了补码,那么接下来只要转换为咱们人能识别的码型就可以,因此按照规则,把这个11110110这个补码转换为原码即可

符号位不变,其它位取反==>10001001

然后+1,得到原码=======>10001010这就是-10



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3